package com.beiing.leafchat.support;


import ohos.agp.window.service.Display;
import ohos.agp.window.service.DisplayAttributes;
import ohos.agp.window.service.DisplayManager;
import ohos.app.Context;

import java.math.BigDecimal;
import java.util.Optional;

/**
 * Created by chenliu on 2016/5/9.<br/>
 * 描述：
 * </br>
 */
public class LeafUtil {

    /**
     * 将sp值转换为px值，保证文字大小不变
     *
     * @param context
     * @param spValue （DisplayMetrics类中属性scaledDensity）
     * @return sp2px
     */
    public static float sp2px(Context context, float spValue) {
        DisplayAttributes displayAttributes = getScreenPiex(context);
        return spValue * displayAttributes.scalDensity;
    }

    public static DisplayAttributes getScreenPiex(Context context) {
        // 获取屏幕密度
        Optional<Display> display = DisplayManager.getInstance().getDefaultDisplay(context);
        if (display.isPresent()) {
            DisplayAttributes displayAttributes = display.get().getAttributes();
            return displayAttributes;
        }
        //displayAttributes.xDpi;
        //displayAttributes.yDpi
        return null;
    }

    public static float dp2px(Context context, float dp) {
        // 获取屏幕密度
        DisplayAttributes displayAttributes = getScreenPiex(context);
        return dp * displayAttributes.scalDensity;
    }


    public static float add(float... a) {
        BigDecimal ret = new BigDecimal(0);
        for (int i = 0; i < a.length; i++) {
            ret = ret.add(new BigDecimal(a[i]));
        }
        return ret.floatValue();
    }

    public static float mul(float a, float b) {
        BigDecimal a1 = new BigDecimal(a);
        BigDecimal b1 = new BigDecimal(b);
        return a1.multiply(b1).floatValue();
    }

    public static float div(float a, float b) {
        BigDecimal a1 = new BigDecimal(a);
        BigDecimal b1 = new BigDecimal(b);
        return a1.divide(b1, 2, BigDecimal.ROUND_HALF_UP).floatValue();
    }


}
